package com.young.ums.service;

import com.young.common.util.Page;
import com.young.ums.model.User;

import java.util.Date;
import java.util.List;

/**
* 用户信息服务接口
* Created by rookie on 2018-04-03.
*/
public interface IUserService {

    /**
    * 查询
    * @param obj
    * @return
    */
    List<User> getList(User obj);

    /**
    * 分页查询
    * @param obj
    * @param page
    * @return
    */
    List<User> getPage(User obj, Page page);

    /**
     * 根据单位id查询用户列表
     * @param companyId 单位id
     * @return
     */
    List<User> getListByCompanyId(String companyId);

    /**
    * 查询单条
    * @param id
    * @return
    */
    User get(String id);

    /**
     * 根据账号查询用户信息
     * @param account 账号
     * @return
     */
    User getUserByAccount(String account);


    /**
    * 统计数量
    * @param obj
    * @return Integer 满足xx条件的数据有多少条
    */
    int count(User obj);

    /**
    * 修改
    * @param obj
    * @return
    */
    int update(User obj);

    /**
     * 更新登录时间
     * @param userId 用户id
     * @param loginTime 登录时间
     * @return
     */
    int updateLoginTime(String userId, Date loginTime);

    /**
    * 删除
    * @param id
    * @return
    */
    int delete(String id);

    /**
    * 批量删除
    * @param idArr
    * @return
    */
    int delete(String[] idArr);

    /**
    * 插入
    * @param obj
    * @return
    */
    int insert(User obj);

    /**
    * 批量插入
    * @param list
    * @return
    */
    int batchInsert(List<User> list);

    /**
     * 重置密码
     * @param userId 待操作用户id
     * @return
     */
    int resetPassword(String userId);

    /**
     * 批量重置密码
     * @param userIds
     * @return
     */
    int batchResetPassword(String[] userIds);

}